使用Travis-CI 将github上的博客内容与静态网站分离并持续部署

问题

按照以往的做法,你会使用hexo来生成博客的静态文件,并通过git提交到github上,以此来写作和发布文章。

然而,经过一段时间,你会发现,这种写作方式存在几个问题:

  • 文章源和相关编译、部署程序都存储在本地,如果在其他设备上写作,没有同步措施。这样书写多有不便。
  • 文章源没有备份,也没有充分使用Git来管理。
  • 每次书写完文章,需要手动编译和部署。

鉴于以上几个问题,结合Travis-CI的使用经验,我决定对往常的写作方式进行改进:

步骤

新建分支

除了原来博客中的master分支, 再新建两个分支:docs分支用于存放文章源:hexo分支用于存放一些配置文件,我们将在该分支上进行持续部署。

docs 分支

该分支下存放文章源,各篇均以markdow格式书写。除此之外,有 .travis.yml 配置文件和一个触发部署的脚本 deploy.sh

每当有文章提交上来,就会自动触发一次构建,其内容是通过调用Travis-CI的API,自动执行一次 hexo 分支上的自动构建。

hexo 分支

该分支存放一些hexo的配置文件,当构建被触发时,会自动拉取docs中的文章内容,安装一个material皮肤,并进行hexo的自动网站编译。
最后编译完的静态Html,强制推送到master分支,从而博客自动更新。

Thanks for reading.